package br.com.fatecpg.minhasfinancas;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class Banco extends SQLiteOpenHelper{
	
		private static final String DATABASE_NAME = "financas.db";
		private static final int DATABASE_VERSION = 1;
		private static final String DATABASE_CREATE =  "CREATE TABLE tb_configuracao("
				+"cd_configuracao INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT,"
				+"dd_antecedencia_alerta INTEGER NOT NULL,"
				+"ic_repeticao_alerta BOOLEAN,"
				+"dc_observacao_alerta VARCHAR,"
				+"ic_notificacao_email_alerta BOOLEAN,"
				+"ic_notificacao_celular_alerta BOOLEAN,"
				+"hr_notificacao_alerta BOOLEAN"					
				+");"

+"CREATE TABLE tb_receita ("
			+"cd_receita INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT,"
			+"dt_receita DATE NOT NULL,"
			+"vl_receita DECIMAL(8,2),"
			+"nm_pagador_receita VARCHAR,"
			+"ds_receita VARCHAR"
			+");"


+"CREATE TABLE tb_usuario("
			+"cd_usuario INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT,"
			+"nm_usuario VARCHAR NOT NULL"
			+");"

+"CREATE TABLE tb_forma_pagamento ("
				+"cd_forma_pagamento INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT, "
				+"nm_forma_pagamento VARCHAR NULL"
				+");"

+"CREATE TABLE tb_cartao("
			+"cd_cartao INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT,"
			+"nm_cartao VARCHAR NOT NULL,"
			+"nm_bandeira_cartao VARCHAR,"
			+"ic_credito_cartao BOOLEAN,"
			+"ic_debito_cartao BOOLEAN,"
			+"dd_vencimento_cartao INTEGER,"
			+"ic_alerta_cartao BOOLEAN"
			+");"


+"CREATE TABLE tb_despesa ("
			+"cd_despesa INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT,"
			+"cd_forma_pagamento INTEGER NOT NULL,"
			+"cd_cartao INTEGER,"
			+"ds_despesa VARCHAR,"
			+"vl_despesa DECIMAL(8,2),"
			+"dt_despesa DATE,"
			+"CONSTRAINT tb_despesa_has_tb_forma_pagamento FOREIGN KEY (cd_forma_pagamento) REFERENCES tb_forma_pagamento(cd_forma_pagamento),"
			+"CONSTRAINT tb_despesa_has_tb_cartao FOREIGN KEY (cd_cartao) REFERENCES tb_cartao(cd_cartao)"
			+");"

+"CREATE TABLE tb_alerta("
			+"cd_alerta INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT,"
			+"cd_cartao INTEGER,"
			+"cd_despesa INTEGER,"
			+"dt_alerta DATE NOT NULL,"
			+"CONSTRAINT tb_alerta_has_tb_cartao FOREIGN KEY (cd_cartao) REFERENCES tb_cartao(cd_cartao),"
			+"CONSTRAINT tb_alerta_has_tb_despesa FOREIGN KEY (cd_despesa) REFERENCES tb_despesa(cd_despesa)"
			+");";
		
		public Banco(Context context){
			super(context, DATABASE_NAME, null, DATABASE_VERSION);
			
		}

		@Override
		public void onCreate(SQLiteDatabase db) {
			// TODO Auto-generated method stub
			db.execSQL(DATABASE_CREATE);
			
		}

		@Override
		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
			// TODO Auto-generated method stub
			db.execSQL("DROP TABLE tb_configuracao IF EXISTS");
			db.execSQL("DROP TABLE tb_receita IF EXISTS");
			db.execSQL("DROP TABLE tb_usuario IF EXISTS");
			db.execSQL("DROP TABLE tb_forma_pagamento IF EXISTS");
			db.execSQL("DROP TABLE tb_cartao IF EXISTS");
			db.execSQL("DROP TABLE tb_despesa IF EXISTS");
			db.execSQL("DROP TABLE tb_alerta IF EXISTS");
			onCreate(db);
		}

}
